package com.pxst.internalReports.resp;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import io.swagger.annotations.ApiModel;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author Chrissy
 * @description 虚拟银行对账单的汇出报表实体
 * @since 2023-11-06 11:28:23
 */
@Data
@ApiModel(value = "虚拟银行对账单的汇出报表实体")
@ExcelTarget(value = "virtualBankStatementExcelResp")
public class VirtualBankStatementExcelResp {

    /**
     * 银行对账单表的id
     */
    @Excel(name = "Id")
    private Integer sysBankBillId;

    /**
     * 银行对账单表的描述
     */
    @Excel(name = "描述")
    private String description;

    /**
     * 银行对账单表的转出
     */
    @Excel(name = "转出")
    private BigDecimal debit;

    /**
     * 银行对账单表的转入
     */
    @Excel(name = "转入")
    private BigDecimal credit;

    /**
     * 银行对账单表的讯银余额
     */
    @Excel(name = "余额")
    private BigDecimal balanceXy;

    /**
     * 银行对账单表的更新时间
     */
    @Excel(name = "更新时间")
    private LocalDateTime updatedAt;

    /**
     * 银行对账单表的创建时间
     */
    @Excel(name = "创建时间")
    private LocalDateTime createdAt;

    /**
     * 银行对账单表的创建者
     */
    @Excel(name = "创建人")
    private String creator;

    /**
     * 银行对账单表的更新者
     */
    @Excel(name = "更新人")
    private String updator;

    /**
     * 银行对账单表的类型
     */
    @Excel(name = "类型", replace = {"Deposit  充值 _1", "Withdraw 代付_2 ", "Settlement 下发 _3"
            , "Internal transfer  内转 _4", "Bank charge 银行手续费 _5", "Bank interest 银行利息 _6"
            , "Unclaimed fund 无法辩别的收入 _7", "Unknown transfer 无法辨别的支出 _8", "DOUBLE PAYOUT _9"
            , "SPMC _10", "OPENCARD _11", "AJ FI _12", "AJ FO _13", "AJ TOPUP _14", "AJ BALANCE _15"
            , "TECH TEST _16", "BIMC _17", "MA REBATE _19", "SIM TOPUP _20", "BANK RENTAL _21", "OTHERS _22"
            , "REFUND FRAUD _24", "REFUND DEPOSIT _25", "INTERNAL TRANSFER _26", "BANK REVERSAL_27"})
    private Integer type;

    /**
     * 银行对账单表的交易模式
     */
    @Excel(name = "收款方式", replace = {"Bank_1", "QR Code_2"})
    private Integer txnMode;

    /**
     * 银行对账单表的void（是否作废）
     */
    @Excel(name = "作废状态",replace = {"正常_0","作废_1"})
    private Integer void_;

    /**
     * 银行对账单表的作废请求者
     */
    @Excel(name = "作废请求")
    private String voidRequester;

    /**
     * 银行对账单表的作废批准者
     */
    @Excel(name = "作废准许")
    private String voidApprover;

    /**
     * 银行对账单表的作废拒绝者
     */
    @Excel(name = "作废拒绝")
    private String voidRejector;

    /**
     * 商户信息表的商户名称
     */
    @Excel(name = "商户")
    private String merchantInfoName;

    /**
     * 系统银行卡信息的账户码
     */
    @Excel(name = "账户代码")
    private String accountCode;

    /**
     * 银行对账单的我们的单号
     */
    @Excel(name = "商户订单号")
    private String commandId;

    /**
     * 虚拟银行对账单对账用表的余额
     */
    @Excel(name = "对账")
    private BigDecimal trialBalance;

    /**
     * 银行对账单表的银行手续费
     */
    @Excel(name = "银行手续费")
    private BigDecimal bankFee;

    /**
     * 系统可用银行表的银行名称
     */
    private String availableBankName;


//    /**
//     * fi100的交易id
//     */
//    @Excel(name = "交易Id")
//    private Long txnId;

    /**
     * fi100的交易时间（不知道对应的是哪张表的交易时间暂时默认为sys_bank_bill表的交易时间）
     */
    @Excel(name = "交易时间")
    private LocalDateTime txnTime;

}
